//package cn.edu.ctbu.scoremg.controller;
//
//public interface CommonResult<T> {
//    static CommonResult<String> success(String redirectUrl) {
//
//    }
//
//    static CommonResult<String> failed(String 用户名或密码错误) {
//
//    }
//}

package cn.edu.ctbu.scoremg.controller;

/**
 * 通用返回结果封装
 * @param <T> 数据类型
 */
public class CommonResult<T> {
    private int code;    // 状态码
    private String message; // 提示信息
    private T data;      // 返回数据

    // 私有构造器
    private CommonResult(int code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    /**
     * 成功结果（带数据）
     */
    public static <T> CommonResult<T> success(T data) {
        return new CommonResult<>(200, "操作成功", data);
    }

    /**
     * 成功结果（不带数据）
     */
    public static <T> CommonResult<T> success() {
        return success(null);
    }

    /**
     * 失败结果
     */
    public static <T> CommonResult<T> failed(String message) {
        return new CommonResult<>(500, message, null);
    }

    /**
     * 失败结果（带状态码）
     */
    public static <T> CommonResult<T> failed(int code, String message) {
        return new CommonResult<>(code, message, null);
    }

    // Getter方法
    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public T getData() {
        return data;
    }
}